function fn_alfaNumerico(e) {
  tecla = (document.all) ? e.keyCode : e.which;
  if (tecla==8 || tecla==0) return true; //Tecla de retroceso (para poder borrar)
  patron = /[A-Z a-z 0-9 .,+-=()_"]/;
  te = String.fromCharCode(tecla);
  return patron.test(te);
}

function fn_soloLetras(e) {
  tecla = (document.all) ? e.keyCode : e.which;
  if (tecla==8 || tecla==0) return true; //Tecla de retroceso (para poder borrar)
  patron = /[A-Z a-z"]/;
  te = String.fromCharCode(tecla);
  return patron.test(te);
}

function fn_soloInt(e){
  tecla = (document.all) ? e.keyCode : e.which;
  if (tecla==8 || tecla==0) return true; //Tecla de retroceso (para poder borrar)
  patron = /[0-9"]/;
  te = String.fromCharCode(tecla);
  return patron.test(te);
}
function fn_soloDecimales(e){
  tecla = (document.all) ? e.keyCode : e.which;
  if (tecla==8 || tecla==0) return true; //Tecla de retroceso (para poder borrar)
  patron = /[0-9 ."]/;
  te = String.fromCharCode(tecla);
  return patron.test(te);
}

function fn_soloFecha(e){
  tecla = (document.all) ? e.keyCode : e.which;
  if (tecla==8 || tecla==0) return true; //Tecla de retroceso (para poder borrar)
  patron = /[0-9 /"]/;
  te = String.fromCharCode(tecla);
  return patron.test(te);
}

function formatCurrency(num) {
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num)) num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10) cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
        num = num.substring(0,num.length-(4*i+3))+ num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num + '.' + cents);
}

//function deshabilitaTodo(flag){
//     for(i=0;i<document.getElementsByTagName("input").length;i++){
//
//        if(document.getElementsByTagName("input")[i].type == "text") {
//            document.getElementsByTagName("input")[i].readOnly = true;
//        }
//        if(document.getElementsByTagName("input")[i].type == "radio") {
//            document.getElementsByTagName("input")[i].disabled = true;
//        }
//        if(!flag){
//            if(document.getElementsByTagName("input")[i].type == "checkbox") {
//                if(document.getElementsByTagName("input")[i].id != 'chkML')
//                    document.getElementsByTagName("input")[i].disabled = true;
//            }
//        }
//     }
//     for(j=0;j<document.getElementsByTagName("select").length;j++){
//        document.getElementsByTagName("select")[j].disabled = true;
//     }
//     for(j=0;j<document.getElementsByTagName("textarea").length;j++){
//        document.getElementsByTagName("textarea")[j].disabled = true;
//     }
//}

/*********************COMPROBANDO FECHA ********************************/

function esFechaValida(fecha){
    if (fecha != undefined && fecha.value != "" ){
        if (!/^\d{2}\/\d{2}\/\d{4}$/.test(fecha.value)){
            alert("formato de fecha no v\xe1lido (dd/mm/aaaa)");
            fecha.value = '';
            return false;
        }
        var dia  =  parseInt(fecha.value.substring(0,2),10);
        var mes  =  parseInt(fecha.value.substring(3,5),10);
        var anio =  parseInt(fecha.value.substring(6),10);

        switch(mes){
            case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                numDias=31;
                break;
            case 4: case 6: case 9: case 11:
                numDias=30;
                break;
            case 2:
                if (comprobarSiBisisesto(anio)){numDias=29}else{numDias=28}
                break;
            default:
                alert("Fecha introducida err\xf3nea");
                fecha.value = '';
                return false;
        }
        if(dia>numDias || dia==0){
            alert("Fecha introducida err\xf3nea");
            fecha.value = '';
            return false;
        }
        return true;
    }
}

function comprobarSiBisisesto(anio){
    if(( anio % 100 != 0) && ((anio % 4 == 0) || (anio % 400 == 0))) {
        return true;
    }
    else{
        return false;
    }
}

function f_ComparaFecha(fecha1, fecha2){    
    if (fecha1 == fecha2) return 0;
    var anhoFecha1 = fecha1.substr(6,4);
    var mesFecha1  = fecha1.substr(3,2);
    var diaFecha1  = fecha1.substr(0,2);
    var anhoFecha2 = fecha2.substr(6,4);
    var mesFecha2  = fecha2.substr(3,2);
    var diaFecha2  = fecha2.substr(0,2);
    if (eval(anhoFecha1 - anhoFecha2 ) > 0)
       return 1;
    else
       if (eval(anhoFecha1 - anhoFecha2) == 0) {
          if (eval(mesFecha1 - mesFecha2) > 0)
             return 1;
          else
             if (eval(mesFecha1 - mesFecha2) == 0 ) {
                if (eval(diaFecha1 - diaFecha2) >= 0)
                   return 1;
             }
       }
    return -1;
}

function fn_leerow(indice,tabla){
    var aux = '';
    var strAux = '';    
    for(var i=3;i<tabla.tBodies[0].rows.length-1;i++){
        aux = tabla.tBodies[0].rows[i].cells[indice].firstChild.nodeValue;
        if(aux == null){
            aux = tabla.tBodies[0].rows[i].cells[indice].firstChild.firstChild.nodeValue;
        }
        strAux = strAux + aux;
        strAux = strAux+'@';
    }
    return strAux;
}

function fn_leerowSel(indice, tabla,child,concatenaValueChk){
    var strAux = '';
    var strEstado = 'N';
    for(var i=3;i<tabla.tBodies[0].rows.length-1;i++){
        strEstado = 'N';        
        if(child){
            strAux = strAux + tabla.tBodies[0].rows[i].cells[indice].firstChild.firstChild.nodeValue;
        }else{
            if(!concatenaValueChk)
                strAux = strAux + (tabla.tBodies[0].rows[i].cells[indice].firstChild.nodeValue==null?tabla.tBodies[0].rows[i].cells[indice].firstChild.firstChild.nodeValue:tabla.tBodies[0].rows[i].cells[indice].firstChild.nodeValue);
            else{
                if(document.getElementById('chkelimina'+i).checked){
                    strEstado = 'S';
                }
                strAux = strAux + tabla.tBodies[0].rows[i].cells[indice].firstChild.nodeValue+'|'+strEstado;
            }
        }
        strAux = strAux+'@';
    }
    return strAux;
}

function fn_ml(tc,comp){
    if(tabla.tBodies[0].rows.length>4){
        var mf = 0.00;
        if(comp.checked){
            var dblTc = parseFloat(tc);
            var dblTotal = parseFloat(document.getElementById('idTotal').firstChild.firstChild.nodeValue);
            mf = dblTotal*dblTc;
        }
        document.getElementById('idTotalML').innerHTML = formatCurrency(mf);
    }else{
        document.getElementById('idTotalML').innerHTML = formatCurrency(0.00);
    }
}

function f_ComparaFecha(fecha1, fecha2){    
    if (fecha1 == fecha2) return 0;
    var anhoFecha1 = fecha1.substr(6,4);
    var mesFecha1  = fecha1.substr(3,2);
    var diaFecha1  = fecha1.substr(0,2);
    var anhoFecha2 = fecha2.substr(6,4);
    var mesFecha2  = fecha2.substr(3,2);
    var diaFecha2  = fecha2.substr(0,2);
    if (eval(anhoFecha1 - anhoFecha2 ) > 0)
       return 1;
    else
       if (eval(anhoFecha1 - anhoFecha2) == 0) {
          if (eval(mesFecha1 - mesFecha2) > 0)
             return 1;
          else
             if (eval(mesFecha1 - mesFecha2) == 0 ) {
                if (eval(diaFecha1 - diaFecha2) >= 0)
                   return 1;
             }
       }
    return -1;
}

function completar(n){
    if (n<10) return '0'+n;
    return n;
}

function desabilitarCheck(id){
   //alert(id);
    for(i=0;i<document.getElementsByTagName("input").length;i++){
        if(document.getElementsByTagName("input")[i].type == "checkbox"){
        if(document.getElementsByTagName("input")[i].id != id){
    
            document.getElementsByTagName("input")[i].checked = false;
        }
        }
    }
}

function deshabilitaTodo(){

     for(i=0;i<document.getElementsByTagName("input").length;i++){

        if(document.getElementsByTagName("input")[i].type == "text") {
            document.getElementsByTagName("input")[i].disabled = true;
        }
//        if(document.getElementsByTagName("input")[i].type == "radio") {
//            document.getElementsByTagName("input")[i].disabled = true;
//        }

       if(document.getElementsByTagName("input")[i].type == "checkbox") {
            document.getElementsByTagName("input")[i].disabled = true;
         }

     }
     deshabilitaCombo();
//     for(j=0;j<document.getElementsByTagName("select").length;j++){
//        document.getElementsByTagName("select")[j].disabled = true;
//     }
//     for(j=0;j<document.getElementsByTagName("textarea").length;j++){
//        document.getElementsByTagName("textarea")[j].disabled = true;
//     }
}

function deshabilitaTodoCompetencias(){
    for(j=0;j<document.getElementsByTagName("select").length;j++){
        document.getElementsByTagName("select")[j].disabled = true;
    }
}

function deshabilitaCombo(){
    for(j=0;j<document.getElementsByTagName("select").length;j++){
        document.getElementsByTagName("select")[j].disabled = true;
    }

}

function deshabilitaTodoIntegral(){
    for(j=0;j<document.getElementsByTagName("textarea").length;j++){
        document.getElementsByTagName("textarea")[j].disabled = true;
    }
}

function modoLecturaTextArea(){
    for(j=0;j<document.getElementsByTagName("textarea").length;j++){
        document.getElementsByTagName("textarea")[j].setAttribute('readonly',true);
    }
}

function deshabilitaPlanAccion(){
    /*for(j=0;j<document.getElementsByTagName("textarea").length;j++){
        document.getElementsByTagName("textarea")[j].disabled = true;
    }*/
    
    for(i=0;i<document.getElementsByTagName("input").length;i++){
        if(document.getElementsByTagName("input")[i].type == "radio") {
            document.getElementsByTagName("input")[i].disabled = true;
         }
    }  
}
function lTrim(sStr){
    while (sStr.charAt(0) == " ")
     sStr = sStr.substr(1, sStr.length - 1);
    return sStr;
   }

   function rTrim(sStr){
    while (sStr.charAt(sStr.length - 1) == " ")
     sStr = sStr.substr(0, sStr.length - 1);
    return sStr;
   }

   function allTrim(sStr){
    return rTrim(lTrim(sStr));
   }
   
